package ikelib;
import java.awt.Color;


public class ColorTable {
	private static int ColorTableOrg[] = {
			0xff0000,	// 0
			0xff6600,	// 1
			0xff9900,	// 2
			0xffcc00,	// 3
			0x99ff33,	// 4
			0x66cc00,	// 5
			0x00cc00,	// 6
			0x00cc99,	// 7 
			0x00cccc,	// 8
			0x0099ff,	// 9
			0x0066ff,	// 10
			0x0000cc,	// 11
			0x6600cc,	// 12
			0x993399,	// 13
			0xcc3399,	// 14
			0xff0099,	// 15
			0xff3366	// 16
	};
	private int  TransParent = 200;
	/**
	 * 透明度を得る
	 * @return
	 */
	public int getTransParent() {
		return TransParent;
	}
	/**
	 * 透明度を設定する （０透明：２５５不透明）
	 * @param transParent
	 */
	public void setTransParent(int transParent) {
		if(TransParent != transParent){
			TransParent = transParent;
			SetColor();
		}
	}
	private int Brightness = 2;
	/**
	 * 明るさを返す　（０明るい　２普通　４：暗い）
	 * @return
	 */
	public int getBrightness() {
		return Brightness;
	}
	/**
	 * 明るさをセットする　（０明るい　２普通　４：暗い）
	 * @param brightness
	 */
	public void setBrightness(int brightness) {
		if(Brightness != brightness){
			Brightness = brightness;
			SetColor();
		}
	}
	private Color ColorTable[] = null;
	
	
	public ColorTable(){
		ColorTable = new Color[ColorTableOrg.length];
		SetColor();
	}
	/**
	 * カラーを準備する
	 */
	private void SetColor(){
		for(int i=0;i<ColorTableOrg.length;i++){
			int idx = (i*3) % ColorTableOrg.length;
			int color = ColorTableOrg[i];
			Color c = new Color((color>>16) & 0xff, (color>>8) & 0xff,(color>>0) & 0xff,TransParent);
			switch(Brightness){
			case 0: c = c.brighter(); c = c.brighter(); break;
			case 1: c = c.brighter(); break;
			case 2: break;
			case 3: c = c.darker(); break;
			case 4: c = c.darker(); c = c.darker(); break;
			}
			ColorTable[idx] = c; 
		}			
	}
	public Color getColor(int idx){
		return ColorTable[idx];
	}
	public  int getTableSize(){
		return ColorTableOrg.length;
	}

}
